//
//  FXStatusViewModel.swift
//  微博(Swift)
//
//  Created by V on 16/1/2.
//  Copyright © 2016年 V. All rights reserved.
//

import UIKit

class FXStatusViewModel: NSObject {
    
    // MARK: - 属性
    // 会员显示的图片
    var memberImage: UIImage?
    // 认证图片
    var verifiedImage: UIImage?
    // 转发评论赞的数量字符串
    var repostsCount: String?
    var commentsCount: String?
    var attitudesCount: String?
    // 转发微博的内容(如果有转发微博的话，这个属性才有意义)
    var retweetStatusText: String? // @昵称: 转发微博的内容

    var picUrls:[FXStatusPictureInfo]?
    
    
    
    
    // 当前视图模型对应的模型数据
    var status: FXStatus?{
        didSet{
            // 这里的业务逻辑是：给 View 提供他需要的属性及相应的值
            // 当外界设置 status 的时候，就通过 mbrank 计算出来是否显示会员图片
            if let mbrank = status?.user?.mbrank where mbrank > 0 && mbrank < 7 {
                // 根据 mbrank 的值计算出是否是会员。如果是会员就给 memberImage 赋值为一张相对应的会员等级图片
                memberImage = UIImage(named: "common_icon_membership_level\(mbrank)")
            }else{
                // 如果不是会员，就赋值为一个空
                memberImage = nil
            }
            // 认证图标
            verifiedImage = calcVerifiedImage()
            //转发评论赞
            repostsCount = calcStatusCount(status?.reposts_count ?? 0, defaultTitle: "转发")
            commentsCount = calcStatusCount(status?.comments_count ?? 0, defaultTitle: "评论")
            attitudesCount = calcStatusCount(status?.attitudes_count ?? 0, defaultTitle: "赞")
            
            
            //判断是否有转发微博
            if let retweetText = status?.retweeted_status?.text{
                if let retweetName = status?.retweeted_status?.user?.screen_name{
                    retweetStatusText = "\(retweetName):\(retweetText)"
                }
            }
            // 新浪微博中，如果原创微博有图片，则转发微博就没有图片
            // 1. 判断原创微博是否有图，2. 判断转发微博是否有图
            if let urls = status?.pic_urls where urls.count > 0{
                picUrls = urls
            }else if let urls = status?.retweeted_status?.pic_urls where urls.count > 0 {
                picUrls = urls
            }
        }
    }
    
    
    /// 计算认证的图标
    private func calcVerifiedImage() -> UIImage? {
        // 计算认证图标
        if let verifiedType = status?.user?.verified_type {
            switch verifiedType {
            case -1:
                return nil
            case 0:
                return UIImage(named: "avatar_vip")
            case 2,3,5:
                return UIImage(named: "avatar_enterprise_vip")
            case 220:
                return UIImage(named: "avatar_grassroot")
            default:
                return nil
            }
        }
        return nil
    }
    
    
    // 转发评论赞
    /**
    - 比如转发数量为 9990 --> 9990
    - 大于万 11111 --> 1.1 万
    - 大于万 10900 --> 1万
    */
    private func calcStatusCount(count: Int, defaultTitle: String) ->String {
        if count == 0 {
            return defaultTitle
        }
        if count < 10000 {
            return "\(count)"
        }else{
            let result = CGFloat(count / 10000)
            let resultStr = "\(result)万"
            if resultStr.containsString(".0"){
                return resultStr.stringByReplacingOccurrencesOfString(".0", withString: "")
            }
            return resultStr
        }
    }
    
    
    
    
}